package com.martinwj.camera2demo.utils;

import android.annotation.SuppressLint;
import android.os.Environment;
import android.util.Log;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 存储图片和视频的工具类
 */
public class MediaFunc {

    private static String TAG = "MediaFunc";
    public static final int MEDIA_TYPE_IMAGE = 1;
    public static final int MEDIA_TYPE_VIDEO = 2;
    public static final int MEDIA_TYPE_YUV = 3;
    /**
     * GALLERY_PATH  图片和相册等的管理文件 只要我们使用相机和相册 都会产生数据和缓存 然后都保存在gallery这个文件夹里
     * 可以删除 只要我们使用相机和相册 就会出现 放置一些多媒体的缩略图
     * */
    public static final String GALLERY_PATH = Environment.getExternalStoragePublicDirectory(Environment // 获取外部存储器的第一层的文件对象
            .DIRECTORY_DCIM) + File.separator; //File.separator 的作用相当于 ' \  '系统有关的默认名称分割符
    public static final String SAVE_PATH = "Camera2Demo"; // 保存数据的控制方式

    public static File getOutputMediaFile(int type, String tag) {  // 自定义拍摄的照片将其保存到文件中
//        File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
//                Environment.DIRECTORY_DCIM), SAVE_PATH);
        File mediaStorageDir = new File(GALLERY_PATH, SAVE_PATH);
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.e(TAG, "创建目录失败");
                return null;
            }
        }
        /**
         *   实时的来存储拍摄的图片和视频
         */
        @SuppressLint("SimpleDateFormat")
        String timeStamp = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(new Date());
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE) {
            mediaFile = new File(mediaStorageDir.getPath()
                    + File.separator + "IMG_" + tag + "_" + timeStamp + ".jpg");
        } else if (type == MEDIA_TYPE_VIDEO) {
            mediaFile = new File(mediaStorageDir.getPath()
                    + File.separator + "VID_" + tag + "_" + timeStamp + ".mp4");
        } else if (type == MEDIA_TYPE_YUV) {
            mediaFile = new File(mediaStorageDir.getPath()
                    + File.separator + "IMG_" + tag + "_" + timeStamp + ".yuv");
        } else {
            return null;
        }
        return mediaFile;
    }


}
